package com.switchcase;

import com.ifelse.IfTest;
import jdk.nashorn.internal.ir.CaseNode;
import org.junit.Test;
import sun.applet.Main;

import java.util.Scanner;

/**
 * @author: wuhao
 * @since: 2021/4/21 20:19
 */
public class SwitchTest {

    /**
     * switch-case 语句有关规则
     * <p>
     * 1. switch(表达式) 中表达式的值必须是以下几种类型： byte、short、int、char、jdk1.5 枚举类 、 jdk1.7 String;
     * 2. case 中的值必须是确定的常量，不能是变量或者是不确定的表达式;
     * 3. 同一个switch语局中，所有case子句中的常量值互不相同；
     * 4. break语句用来在执行完一个case分支后使程序跳出switch语句块，如果没有break语句，程序会顺序的执行到switch结尾；
     * 5. default子句是任选的.同时，位置也是灵活的，当没有匹配的case时，执行default；
     */

    /**
     * 1.使用 switch 把小写类型的 char型转为大写。只转换 a, b, c, d, e. 其它的输
     * 出 “other”。
     */
    public static void main(String[] args) {

        System.out.println("请输入一个单词:");
        Scanner scanner = new Scanner(System.in);
        String word = scanner.next();
        for (int i = 0; i < word.length(); i++) {
            switch (word.charAt(i)) {
                case 'a':
                    System.out.println('A');
                    break;
                case 'b':
                    System.out.println('B');
                    break;
                case 'c':
                    System.out.println('C');
                    break;
                case 'd':
                    System.out.println('D');
                    break;
                case 'e':
                    System.out.println('E');
                    break;
                default:
                    System.out.println("other");
            }
        }
    }

    @Test
    public void test1() {

        String season = "summer";
        switch (season) {
            case "spring":
                System.out.println("春暖花开");
                break;
            case "summer":
                System.out.println("夏日炎炎");
                break;
            case "autumn":
                System.out.println("秋高气爽");
                break;
            case "winter":
                System.out.println("冬雪皑皑");
                break;
            default:
                System.out.println("季节输入有误!");
        }
    }


    /**
     * 2.对学生成绩大于60分的，输出“合格”。低于60分的，输出“不合格”。
     */
    @Test
    public void test3() {
        int score = 59;
        switch (score/60){
            case 1 :
                System.out.println("合格");
            break;
            case 0 :
                System.out.println("不合格");
            break;
        }

    }


    /**
     * 3.根据用于指定月份，打印该月份所属的季节。
     * 3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
     */
    @Test
    public void test4() {
         int month = 1;
         switch (month){
             case 3 :
             case 4 :
             case 5 :
                 System.out.println("春季");
                 break;
             case 6 :
             case 7 :
             case 8 :
                 System.out.println("夏季");
                 break;
             case 9 :
             case 10 :
             case 11 :
                 System.out.println("秋季");
                 break;
             case 12 :
             case 1 :
             case 2 :
                 System.out.println("冬季");
                 break;
         }
    }

    /**
     * 使用switch语句改写下列if语句：
     * int a = 3;
     * int x = 100;
     * if(a==1)
     * x+=5;
     * else if(a==2)
     * x+=10;
     * else if(a==3)
     * x+=16;
     * else
     * x+=34;
     */
    @Test
    public void test5() {
       int a = 3;
       int x = 100;
       switch (a){
           case 1: x+=5;
           break;
           case 2: x+=10;
           break;
           case 3: x+=16;
           break;
           default:x+=34;
       }
        System.out.println("a="+a+" "+"x="+x);
    }

    @Test
    public void test6() {

    }


}
